package xyz.csmemo.novel.service;

import jakarta.validation.Valid;
import xyz.csmemo.novel.core.common.resp.RestResp;
import xyz.csmemo.novel.dto.req.UserInfoUptReqDto;
import xyz.csmemo.novel.dto.req.UserLoginReqDto;
import xyz.csmemo.novel.dto.req.UserRegisterReqDto;
import xyz.csmemo.novel.dto.resp.UserInfoRespDto;
import xyz.csmemo.novel.dto.resp.UserLoginRespDto;
import xyz.csmemo.novel.dto.resp.UserRegisterRespDto;

public interface UserService {
    RestResp<UserRegisterRespDto> register(@Valid UserRegisterReqDto dto);

    RestResp<UserLoginRespDto> login(@Valid UserLoginReqDto dto);

    RestResp<UserInfoRespDto> getUserInfo(Long userId);

    RestResp<Void> updateUserInfo(@Valid UserInfoUptReqDto dto);

    RestResp<Void> saveFeedback(Long userId, String content);

    RestResp<Void> deleteFeedback(Long userId, Long id);

    RestResp<Integer> getBookshelfStatus(Long userId, String bookId);
}
